package com.ktjy.mapper;

import com.ktjy.pojo.SysUser;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface SysUserMapper {
    /**
     * 根据名字和角色查询
     * @param realName
     * @param roleId
     * @return
     */
    public List<SysUser> getUsersByPrams(@Param("realName") String realName,
                                         @Param("roleId") Long roleId);

    /**
     * 名字有值根据名字查询，名字没值根据角色查询，名字和角色都没值根据账号查询，
     * 名字，角色和账号都没值根据创建时间查询
     * @param realName
     * @param roleId
     * @param account
     * @param createdTime
     * @return
     */
    public List<SysUser> selectListByChoose(@Param("realName") String realName,
                                            @Param("roleId") Long roleId,
                                            @Param("account") String account,
                                            @Param("createdTime") Date createdTime);

    /**
     * 根据多个角色id查询用户信息
     * @param roleIds
     * @return
     */
    public List<SysUser> getUserByRoleIdArray(@Param("roleIds") Long[] roleIds);

    /**
     * 根据多个角色id查询用户信息
     * @param roleIds
     * @return
     */
    public List<SysUser> getUserByRoleIdList(@Param("roleIds")List<Long> roleIds);

    /**
     * 根据多个角色id查询用户信息
     * @param roleIds
     * @return
     */
    public List<SysUser> getUserByRoleIdMap(Map<String,Object> roleIds);

    /**
     * 修改
     * @param sysUser
     * @return
     */
    public int update(SysUser sysUser);

    public List<SysUser> selectPageList(@Param("realName") String realName,
                                        @Param("roleId") Long roleId,
                                        @Param("pageBegin") Integer pageBegin,
                                        @Param("pageSize")  Integer pageSize);
}

